import { vendorsDanger as danger, vendorsWarning as warning } from './../../utils/config';
// 表格数据更新处理
export const handeUpdateTableData = (value, key, rec, index, tableData, callback) => {
    let timedTableData = [...tableData];
    switch (key) {
        case "planDays":
            let expectDurationValue = value ? parseInt(value.target.value) : "";
            if (expectDurationValue < 1) {
                warning({ text: '工期只能输入正整数' });
            } else {
                if (rec.isFirst) { // 一级计划
                    timedTableData[index][key] = expectDurationValue;
                } else { // 子级计划
                    timedTableData.map((item, i) => {
                        if (item.children) {
                            // 递归所有子节点，按照key分配对应工期值
                            childrenLoop(item.children, rec, key, expectDurationValue);
                        }
                    });
                }
                callback(timedTableData);
            }
            break;
        case "pkMilestone":
            let pkCode = value ? value[key] : ""; // 里程碑主键
            if (rec.isFirst) { // 一级计划
                timedTableData[index][key] = pkCode;
            } else { // 子级计划
                timedTableData.map((item, i) => {
                    if (item.children) {
                        // 递归所有子节点，按照key分配对应工期值
                        childrenLoop(item.children, rec, key, pkCode);
                    }
                });
            }
            callback(timedTableData);
            break;
        case "relatedBillType": // 关联计划
            let codeValue = value ? value["code"] : "";
            if (rec.isFirst) { // 一级计划
                timedTableData[index][key] = codeValue;
            } else { // 子级计划
                timedTableData.map((item, i) => {
                    if (item.children) {
                        // 递归所有子节点，按照key分配对应工期值
                        childrenLoop(item.children, rec, key, codeValue);
                    }
                });
            }
            break;
        case "manager": // 负责人
            let userId = value ? value["userId"] : "";
            if (rec.isFirst) { // 一级计划
                timedTableData[index][key] = userId;
            } else { // 子级计划
                timedTableData.map((item, i) => {
                    if (item.children) {
                        // 递归所有子节点，按照key分配对应工期值
                        childrenLoop(item.children, rec, key, userId);
                    }
                });
            }
            break;
        default:
            break;
    }

    // 递归所以子节点，按照当前操作的rec的key值匹配对应值
    function childrenLoop(children, rec, updatedKey, updatedValue) {
        children.map((item, index) => {
            if (rec.key === item.key) {
                item[updatedKey] = updatedValue;
            }
            else if (item.children) childrenLoop(item.children, rec, updatedKey, updatedValue);
        });
    }
}

// 获取里程碑档案参照数据
export function getMilestoneRef(params) {
    return axios({
        method: 'get',
        url: '/milestone/refQuery',
        params,
        headers: {
            'Cache-Control': 'no-cache'
        }
    });
}

// 单据类型参照查询
export function getBillTypeRef(params) {
    return axios({
        method: 'get',
        url: '/billType/refQuery',
        params,
        headers: {
            'Cache-Control': 'no-cache'
        }
    });
}

// 负责人参照查询 getManagerRef
export function getManagerRef(params) {
    return axios({
        method: 'get',
        url: '/schedule/template/searchUser',
        params,
        headers: {
            'Cache-Control': 'no-cache'
        }
    });
}